import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String animal = scanner.next();
        switch (animal) {
            case ("dog"):{
                //创建Dog类对象dog,通过有参构造方法实例化该对象
                //shout()方法 输出'dog:汪汪'
                /********* begin *********/
                Dog dog=new Dog("dog");
                dog.shout();
                break;
                /********* end *********/
            }
            case ("cat"):{
                //创建Cat类对象cat,通过有参构造方法实例化该对象
                //shout()方法 输出'cat:喵喵'
                /********* begin *********/
                Cat cat=new Cat("cat");
                cat.shout();
                break;
                /********* end *********/
            }
            default: {
                //创建Animals类对象animals,通过有参构造方法实例化该对象
                //shout()方法 输出'animal:叽里咕噜'
                /********* begin *********/
                Animals animals=new Animals("animal");
                animals.shout();
                break;
                /********* end *********/
            }
        }
    }
}

// 父类Animals 封装私有属性name
// 有参构造方法初始化name
// 属性的get方法
// shout()方法 输出'叽里咕噜'
class Animals {
    /********* begin *********/
    private String name;
    Animals(String name) {
        this.name=name;
    }
    public String getName() {
        return name;
    }
    public void shout() {
        System.out.println(name+":叽里咕噜");
    }
    /********* end *********/
}

// Dog类继承自Animals类
// 有参构造方法初始化name
// 重写父类方法shout() 输出 输出'汪汪'
class Dog extends Animals {
    /********* begin *********/
    String name=getName();
    Dog(String name) {
        super(name);

    }
    public void shout() {
        System.out.println(name+":汪汪");
    }
    /********* end *********/
}

// Cat类继承自Animals类
// 有参构造方法初始化name
// 重写父类方法shout() 输出 输出'喵喵'
class Cat extends Animals {
    /********* begin *********/
    String name=getName();
    Cat(String name) {
        super(name);

    }
    public void shout() {
        System.out.println(name+":喵喵");
    }
    /********* end *********/
}